'use strict';

/**
 * 初始化数据库表
 * 创建 chat-templates 和 service-ratings 表
 */
exports.main = async (event, context) => {
	const db = uniCloud.database()
	
	try {
		// 验证管理员权限
		const uid = context.USERINFO?.uid || context.USERINFO?.user_id
		if (!uid) {
			return {
				code: 401,
				msg: '未登录'
			}
		}
		
		const userRes = await db.collection('uni-id-users')
			.doc(uid)
			.get()
		
		if (!userRes.data || !userRes.data.length) {
			return {
				code: 403,
				msg: '用户不存在'
			}
		}
		
		const user = userRes.data[0]
		if (user.role !== 'admin') {
			return {
				code: 403,
				msg: '无权限操作，仅管理员可执行'
			}
		}
		
		const results = {
			chatTemplates: null,
			serviceRatings: null
		}
		
		// 检查并创建 chat-templates 表
		try {
			const templatesTest = await db.collection('chat-templates').limit(1).get()
			results.chatTemplates = 'chat-templates 表已存在'
		} catch (error) {
			// 表不存在，需要手动创建
			results.chatTemplates = 'chat-templates 表不存在，请在 uniCloud 控制台手动创建'
		}
		
		// 检查并创建 service-ratings 表
		try {
			const ratingsTest = await db.collection('service-ratings').limit(1).get()
			results.serviceRatings = 'service-ratings 表已存在'
		} catch (error) {
			// 表不存在，需要手动创建
			results.serviceRatings = 'service-ratings 表不存在，请在 uniCloud 控制台手动创建'
		}
		
		return {
			code: 200,
			msg: '检查完成',
			data: results,
			instruction: '如果表不存在，请按照以下步骤在 uniCloud 控制台创建：\n1. 进入 uniCloud Web 控制台\n2. 选择云数据库\n3. 点击新建集合\n4. 输入集合名称\n5. 根据文档配置表结构'
		}
	} catch (error) {
		console.error('初始化数据库失败:', error)
		return {
			code: 500,
			msg: '操作失败: ' + error.message
		}
	}
}

